home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Camelot / Camelot 013 (1988-04)(Swedish User Group of Amiga)(SE)(PD)[WB].zip / Camelot 013 (1988-04)(Swedish User Group of Amiga)(SE)(PD)[WB].adf / Modula-2 / Benchmark / Defs / ArpMisc.def < prev    next >
Text File  |  1988-04-14  |  4KB  |  104 lines

  1. DEFINITION MODULE ArpMisc;
  2.  
  3.  
  4. (*==========================================================================*)
  5. (*                                                                          *)
  6. (*                         ARP library bindings                             *)
  7. (*                                                                          *)
  8. (*==========================================================================*)
  9. (*            Written for Modula-2 Software Construction Set                *)
  10. (*==========================================================================*)
  11. (*                                                                          *)
  12. (*   Original Author : Martin Taillefer.  26-Feb-88                         *)
  13. (*                                                                          *)
  14. (*   Version         : 1.00a  26-Feb-88  Martin Taillefer                   *)
  15. (*                       Original.                                          *)
  16. (*                                                                          *)
  17. (*==========================================================================*)
  18.  
  19.  
  20. FROM SYSTEM    IMPORT ADDRESS, BYTE;
  21. FROM Intuition IMPORT Window, WindowPtr;
  22. FROM AmigaDOS  IMPORT FileInfoBlock;
  23. FROM ArpProcessHandler IMPORT BreakSigSet;
  24.  
  25.  
  26. CONST
  27.   FChars = 32;  (* Filename size       *)
  28.   DSize  = 33;  (* Directory name size *)  
  29.   FRFirstGadget = 7680H; (* User gadgetID's must be less than this *)
  30.  
  31.  
  32. TYPE
  33.   FRFunction = PROCEDURE(LONGCARD,ADDRESS):LONGCARD;
  34.   (* Note: ARP lib passes a LONG value on the stack even though that value only
  35.    *       represents a FRFlagSet which is a BYTE. So before using, type-cast
  36.    *       the value to FRFlagSet
  37.    *)
  38.  
  39.   FRFlags = (ListFunc,    (* Not implemented. *)
  40.              GEventFunc,  (* Function to call if one of your gads is selected *)
  41.              AddGadFunc,  (* You get to add gadgets *)
  42.              NewWindFunc, (* You got to modify the NewWindow struct. *)
  43.              NewIDCMP,    (* Force a new IDCMP (only if frWindow # NULL) *)
  44.              DoColor,     (* Set this bit for that new and differnt look *)
  45.              DoMsgFunc,   (* You get all IDCMP message not for FileRequest() *)
  46.              DoWildFunc); (* Call me with a FIB and a name, ZERO return accepts. *)
  47.  
  48.   FRFlagSet = SET OF FRFlags;
  49.  
  50.   FileRequesterPtr = POINTER TO FileRequester;
  51.   FileRequester = RECORD
  52.                     frHail     : ADDRESS;   (* Hailing text                    *)
  53.                     frFile     : ADDRESS;   (* Filename array (FCHARS+1)       *)
  54.                     frDir      : ADDRESS;   (* Directory array (DSIZE+1)       *)
  55.                     frWindow   : WindowPtr; (* Window requesting or NULL       *)
  56.                     frFuncFlags: FRFlagSet; (* Control. See above.             *)
  57.                     frReserved1: BYTE;      (* Set this to 0                   *)
  58.                     frFunction : FRFunction;(* Func to call for wildcards      *)
  59.                     frReserved2: LONGCARD;  (* Set this to 0                   *)
  60.                   END;
  61.  
  62.  
  63. PROCEDURE CloseWindowSafely(VAR window,morewindows:Window);
  64.   (* Close a window without GURUing.
  65.    *
  66.    * window      : A pointer to the window to close.
  67.    * morewindows : If there is another window sharing the IDCMP port of the
  68.    *               first window, this parameter should be non-NULL. If the
  69.    *               parameter is NULL, then the IDCMP port will be deallocated. 
  70.    *)
  71.  
  72.  
  73. PROCEDURE FileRequest(VAR fr:FileRequester):ADDRESS;
  74.   (* Get filename from user.
  75.    *
  76.    * fr: An initialized Filerequester record.
  77.    *
  78.    * returns: A pointer to the resulting filename string.
  79.    *)
  80.  
  81.  
  82. PROCEDURE Strcmp(s1,s2:ARRAY OF CHAR):INTEGER;
  83.   (* Compare two strings, ignoring case.
  84.    *
  85.    * s1: The first string to compare.
  86.    * s2: The second string to compare.
  87.    *
  88.    * returns: <0, =0 or >0
  89.    *)
  90.  
  91.  
  92. PROCEDURE Strncmp(s1,s2:ARRAY OF CHAR;n:CARDINAL):INTEGER;
  93.   (* Compare two strings for n bytes, ignoring case.
  94.    *
  95.    * s1: The first string to compare.
  96.    * s2: The second string to compare.
  97.    * n : The number of characters to compare.
  98.    *
  99.    * returns: <0, =0 or >0
  100.    *)
  101.  
  102.  
  103. END ArpMisc.
  104.